package top.infopub.mgr.fia.service;

import com.github.pagehelper.Page;
import top.infopub.enums.fia.IncomeSettlementModeEnum;
import top.infopub.enums.fia.PayBillTypeEnum;
import top.infopub.generic.GenericService;
import top.infopub.mgr.fia.vo.PayBillVo;
import top.infopub.mgr.flow.cnst.FlowTemplateEnum;
import top.infopub.model.fia.PayBill;
import top.infopub.security.vo.AuthorizationVO;

import java.math.BigDecimal;

public interface PayBillService extends GenericService<PayBill, String> {

    /**
     * 根据条件查询分页记录
     * @param page
     * @param payBillVo
     * @return 
     * @see
     */
    Page<PayBillVo> selectPageByDomainWhere(Page<PayBillVo> page, PayBillVo payBillVo);

    /**
     * 付款实体类信息设置
     * @param proCode
     * @param ism
     * @param willPayAmt
     * @param actPayAmt
     * @param pbt
     * @param fte
     * @param bizSguid
     * @param vo
     * @return
     */
    PayBill setPayBillInfo(String proCode, IncomeSettlementModeEnum ism, BigDecimal willPayAmt,
                           BigDecimal actPayAmt, PayBillTypeEnum pbt, FlowTemplateEnum fte, String bizSguid,
                           AuthorizationVO vo);
}